(function(a) {
    a.fn.slide = function(b) {
        return a.fn.slide.defaults = {
            effect: "fade",
            autoPlay: !1,
            delayTime: 500,
            interTime: 2500,
            triggerTime: 150,
            defaultIndex: 0,
            titCell: ".hd li",
            mainCell: ".bd",
            targetCell: null,
            trigger: "mouseover",
            scroll: 1,
            vis: 1,
            titOnClassName: "on",
            autoPage: !1,
            prevCell: ".prev",
            nextCell: ".next",
            pageStateCell: ".pageState",
            opp: !1,
            pnLoop: !0,
            easing: "linear",
            startFun: null,
            endFun: null,
            switchLoad: null
        },
            this.each(function() {
                var c = a.extend({},
                        a.fn.slide.defaults, b),
                    d = c.effect,
                    e = a(c.prevCell, a(this)),
                    f = a(c.nextCell, a(this)),
                    g = a(c.pageStateCell, a(this)),
                    h = a(c.titCell, a(this)),
                    i = h.size(),
                    j = a(c.mainCell, a(this)),
                    k = j.children().size(),
                    l = c.switchLoad;
                if (null != c.targetCell) var m = a(c.targetCell, a(this));
                var n = parseInt(c.defaultIndex),
                    o = parseInt(c.delayTime),
                    p = parseInt(c.interTime);
                parseInt(c.triggerTime);
                var r = parseInt(c.scroll),
                    s = parseInt(c.vis),
                    t = "false" == c.autoPlay || 0 == c.autoPlay ? !1 : !0,
                    u = "false" == c.opp || 0 == c.opp ? !1 : !0,
                    v = "false" == c.autoPage || 0 == c.autoPage ? !1 : !0,
                    w = "false" == c.pnLoop || 0 == c.pnLoop ? !1 : !0,
                    x = 0,
                    y = 0,
                    z = 0,
                    A = 0,
                    B = c.easing,
                    C = null,
                    D = n;
                if (0 == i && (i = k), v) {
                    var E = k - s;
                    i = 1 + parseInt(0 != E % r ? E / r + 1 : E / r),
                        0 >= i && (i = 1),
                        h.html("");
                    for (var F = 0; i > F; F++) h.append("<li>" + (F + 1) + "</li>");
                    var h = a("li", h)
                }
                if (j.children().each(function() {
                    a(this).width() > z && (z = a(this).width(), y = a(this).outerWidth(!0)),
                        a(this).height() > A && (A = a(this).height(), x = a(this).outerHeight(!0))
                }), k >= s) switch (d) {
                    case "fold":
                        j.css({
                            position:
                                "relative",
                            width: y,
                            height: x
                        }).children().css({
                                position: "absolute",
                                width: z,
                                left: 0,
                                top: 0,
                                display: "none"
                            });
                        break;
                    case "top":
                        j.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; height:' + s * x + 'px"></div>').css({
                            position: "relative",
                            padding: "0",
                            margin: "0"
                        }).children().css({
                                height: A
                            });
                        break;
                    case "left":
                        j.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; width:' + s * y + 'px"></div>').css({
                            width: k * y,
                            position: "relative",
                            overflow: "hidden",
                            padding: "0",
                            margin: "0"
                        }).children().css({
                                "float": "left",
                                width: z
                            });
                        break;
                    case "leftLoop":
                    case "leftMarquee":
                        j.children().clone().appendTo(j).clone().prependTo(j),
                            j.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; width:' + s * y + 'px"></div>').css({
                                width: 3 * k * y,
                                position: "relative",
                                overflow: "hidden",
                                padding: "0",
                                margin: "0",
                                left: -k * y
                            }).children().css({
                                    "float": "left",
                                    width: z
                                });
                        break;
                    case "topLoop":
                    case "topMarquee":
                        j.children().clone().appendTo(j).clone().prependTo(j),
                            j.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; height:' + s * x + 'px"></div>').css({
                                height: 3 * k * x,
                                position: "relative",
                                padding: "0",
                                margin: "0",
                                top: -k * x
                            }).children().css({
                                    height: A
                                })
                }
                var G = function() {
                        a.isFunction(c.startFun) && c.startFun(n, i)
                    },
                    H = function() {
                        a.isFunction(c.endFun) && c.endFun(n, i)
                    },
                    I = function(b) {
                        b.eq(n).find("img").each(function() {
                            a(this).attr(l) !== void 0 && a(this).attr("src", a(this).attr(l)).removeAttr(l)
                        })
                    },
                    J = function(a) {
                        if (D != n || a || "leftMarquee" == d || "topMarquee" == d) {
                            switch (d) {
                                case "fade":
                                case "fold":
                                case "top":
                                case "left":
                                    n >= i ? n = 0 : 0 > n && (n = i - 1);
                                    break;
                                case "leftMarquee":
                                case "topMarquee":
                                    n >= 1 ? n = 1 : 0 >= n && (n = 0);
                                    break;
                                case "leftLoop":
                                case "topLoop":
                                    var b = n - D;
                                    i > 2 && b == -(i - 1) && (b = 1),
                                        i > 2 && b == i - 1 && (b = -1);
                                    var p = Math.abs(b * r);
                                    n >= i ? n = 0 : 0 > n && (n = i - 1)
                            }
                            if (G(), null != l && I(j.children()), m && (null != l && I(m), m.hide().eq(n).animate({
                                    opacity: "show"
                                },
                                o,
                                function() {
                                    j[0] || H()
                                })), k >= s) switch (d) {
                                case "fade":
                                    j.children().stop(!0, !0).eq(n).animate({
                                            opacity: "show"
                                        },
                                        o, B,
                                        function() {
                                            H()
                                        }).siblings().hide();
                                    break;
                                case "fold":
                                    j.children().stop(!0, !0).eq(n).animate({
                                            opacity: "show"
                                        },
                                        o, B,
                                        function() {
                                            H()
                                        }).siblings().animate({
                                            opacity: "hide"
                                        },
                                        o, B);
                                    break;
                                case "top":
                                    j.stop(!0, !1).animate({
                                            top: -n * r * x
                                        },
                                        o, B,
                                        function() {
                                            H()
                                        });
                                    break;
                                case "left":
                                    j.stop(!0, !1).animate({
                                            left: -n * r * y
                                        },
                                        o, B,
                                        function() {
                                            H()
                                        });
                                    break;
                                case "leftLoop":
                                    0 > b ? j.stop(!0, !0).animate({
                                            left: -(k - p) * y
                                        },
                                        o, B,
                                        function() {
                                            for (var a = 0; p > a; a++) j.children().last().prependTo(j);
                                            j.css("left", -k * y),
                                                H()
                                        }) : j.stop(!0, !0).animate({
                                            left: -(k + p) * y
                                        },
                                        o, B,
                                        function() {
                                            for (var a = 0; p > a; a++) j.children().first().appendTo(j);
                                            j.css("left", -k * y),
                                                H()
                                        });
                                    break;
                                case "topLoop":
                                    0 > b ? j.stop(!0, !0).animate({
                                            top: -(k - p) * x
                                        },
                                        o, B,
                                        function() {
                                            for (var a = 0; p > a; a++) j.children().last().prependTo(j);
                                            j.css("top", -k * x),
                                                H()
                                        }) : j.stop(!0, !0).animate({
                                            top: -(k + p) * x
                                        },
                                        o, B,
                                        function() {
                                            for (var a = 0; p > a; a++) j.children().first().appendTo(j);
                                            j.css("top", -k * x),
                                                H()
                                        });
                                    break;
                                case "leftMarquee":
                                    var q = j.css("left").replace("px", "");
                                    0 == n ? j.animate({
                                            left: ++q
                                        },
                                        0,
                                        function() {
                                            if (j.css("left").replace("px", "") >= 0) {
                                                for (var a = 0; k > a; a++) j.children().last().prependTo(j);
                                                j.css("left", -k * y)
                                            }
                                        }) : j.animate({
                                            left: --q
                                        },
                                        0,
                                        function() {
                                            if (2 * -k * y >= j.css("left").replace("px", "")) {
                                                for (var a = 0; k > a; a++) j.children().first().appendTo(j);
                                                j.css("left", -k * y)
                                            }
                                        });
                                    break;
                                case "topMarquee":
                                    var t = j.css("top").replace("px", "");
                                    0 == n ? j.animate({
                                            top: ++t
                                        },
                                        0,
                                        function() {
                                            if (j.css("top").replace("px", "") >= 0) {
                                                for (var a = 0; k > a; a++) j.children().last().prependTo(j);
                                                j.css("top", -k * x)
                                            }
                                        }) : j.animate({
                                            top: --t
                                        },
                                        0,
                                        function() {
                                            if (2 * -k * x >= j.css("top").replace("px", "")) {
                                                for (var a = 0; k > a; a++) j.children().first().appendTo(j);
                                                j.css("top", -k * x)
                                            }
                                        })
                            }
                            h.removeClass(c.titOnClassName).eq(n).addClass(c.titOnClassName),
                                D = n,
                                0 == w && (f.removeClass("nextStop"), e.removeClass("prevStop"), 0 == n ? e.addClass("prevStop") : n == i - 1 && f.addClass("nextStop")),
                                g.html("<span>" + (n + 1) + "</span>/" + i)
                        }
                    };
                J(!0),
                    t && ("leftMarquee" == d || "topMarquee" == d ? (u ? n--:n++, C = setInterval(J, p), j.hover(function() {
                            t && clearInterval(C)
                        },
                        function() {
                            t && (clearInterval(C), C = setInterval(J, p))
                        })) : (C = setInterval(function() {
                            u ? n--:n++,
                                J()
                        },
                        p), a(this).hover(function() {
                            t && clearInterval(C)
                        },
                        function() {
                            t && (clearInterval(C), C = setInterval(function() {
                                    u ? n--:n++,
                                        J()
                                },
                                p))
                        })));
                var K;
                "mouseover" == c.trigger ? h.hover(function() {
                        n = h.index(this),
                            K = window.setTimeout(J, c.triggerTime)
                    },
                    function() {
                        clearTimeout(K)
                    }) : h.click(function() {
                    n = h.index(this),
                        J()
                }),
                    f.click(function() { (1 == w || n != i - 1) && (n++, J())
                    }),
                    e.click(function() { (1 == w || 0 != n) && (n--, J())
                    })
            })
    }
})(jQuery),
    jQuery.easing.jswing = jQuery.easing.swing,
    jQuery.extend(jQuery.easing, {
        def: "easeOutQuad",
        swing: function(a, b, c, d, e) {
            return jQuery.easing[jQuery.easing.def](a, b, c, d, e)
        },
        easeInQuad: function(a, b, c, d, e) {
            return d * (b /= e) * b + c
        },
        easeOutQuad: function(a, b, c, d, e) {
            return - d * (b /= e) * (b - 2) + c
        },
        easeInOutQuad: function(a, b, c, d, e) {
            return 1 > (b /= e / 2) ? d / 2 * b * b + c: -d / 2 * (--b * (b - 2) - 1) + c
        },
        easeInCubic: function(a, b, c, d, e) {
            return d * (b /= e) * b * b + c
        },
        easeOutCubic: function(a, b, c, d, e) {
            return d * ((b = b / e - 1) * b * b + 1) + c
        },
        easeInOutCubic: function(a, b, c, d, e) {
            return 1 > (b /= e / 2) ? d / 2 * b * b * b + c: d / 2 * ((b -= 2) * b * b + 2) + c
        },
        easeInQuart: function(a, b, c, d, e) {
            return d * (b /= e) * b * b * b + c
        },
        easeOutQuart: function(a, b, c, d, e) {
            return - d * ((b = b / e - 1) * b * b * b - 1) + c
        },
        easeInOutQuart: function(a, b, c, d, e) {
            return 1 > (b /= e / 2) ? d / 2 * b * b * b * b + c: -d / 2 * ((b -= 2) * b * b * b - 2) + c
        },
        easeInQuint: function(a, b, c, d, e) {
            return d * (b /= e) * b * b * b * b + c
        },
        easeOutQuint: function(a, b, c, d, e) {
            return d * ((b = b / e - 1) * b * b * b * b + 1) + c
        },
        easeInOutQuint: function(a, b, c, d, e) {
            return 1 > (b /= e / 2) ? d / 2 * b * b * b * b * b + c: d / 2 * ((b -= 2) * b * b * b * b + 2) + c
        },
        easeInSine: function(a, b, c, d, e) {
            return - d * Math.cos(b / e * (Math.PI / 2)) + d + c
        },
        easeOutSine: function(a, b, c, d, e) {
            return d * Math.sin(b / e * (Math.PI / 2)) + c
        },
        easeInOutSine: function(a, b, c, d, e) {
            return - d / 2 * (Math.cos(Math.PI * b / e) - 1) + c
        },
        easeInExpo: function(a, b, c, d, e) {
            return 0 == b ? c: d * Math.pow(2, 10 * (b / e - 1)) + c
        },
        easeOutExpo: function(a, b, c, d, e) {
            return b == e ? c + d: d * ( - Math.pow(2, -10 * b / e) + 1) + c
        },
        easeInOutExpo: function(a, b, c, d, e) {
            return 0 == b ? c: b == e ? c + d: 1 > (b /= e / 2) ? d / 2 * Math.pow(2, 10 * (b - 1)) + c: d / 2 * ( - Math.pow(2, -10 * --b) + 2) + c
        },
        easeInCirc: function(a, b, c, d, e) {
            return - d * (Math.sqrt(1 - (b /= e) * b) - 1) + c
        },
        easeOutCirc: function(a, b, c, d, e) {
            return d * Math.sqrt(1 - (b = b / e - 1) * b) + c
        },
        easeInOutCirc: function(a, b, c, d, e) {
            return 1 > (b /= e / 2) ? -d / 2 * (Math.sqrt(1 - b * b) - 1) + c: d / 2 * (Math.sqrt(1 - (b -= 2) * b) + 1) + c
        },
        easeInElastic: function(a, b, c, d, e) {
            var f = 1.70158,
                g = 0,
                h = d;
            if (0 == b) return c;
            if (1 == (b /= e)) return c + d;
            if (g || (g = .3 * e), Math.abs(d) > h) {
                h = d;
                var f = g / 4
            } else var f = g / (2 * Math.PI) * Math.asin(d / h);
            return - (h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * 2 * Math.PI / g)) + c
        },
        easeOutElastic: function(a, b, c, d, e) {
            var f = 1.70158,
                g = 0,
                h = d;
            if (0 == b) return c;
            if (1 == (b /= e)) return c + d;
            if (g || (g = .3 * e), Math.abs(d) > h) {
                h = d;
                var f = g / 4
            } else var f = g / (2 * Math.PI) * Math.asin(d / h);
            return h * Math.pow(2, -10 * b) * Math.sin((b * e - f) * 2 * Math.PI / g) + d + c
        },
        easeInOutElastic: function(a, b, c, d, e) {
            var f = 1.70158,
                g = 0,
                h = d;
            if (0 == b) return c;
            if (2 == (b /= e / 2)) return c + d;
            if (g || (g = e * .3 * 1.5), Math.abs(d) > h) {
                h = d;
                var f = g / 4
            } else var f = g / (2 * Math.PI) * Math.asin(d / h);
            return 1 > b ? -.5 * h * Math.pow(2, 10 * (b -= 1)) * Math.sin((b * e - f) * 2 * Math.PI / g) + c: .5 * h * Math.pow(2, -10 * (b -= 1)) * Math.sin((b * e - f) * 2 * Math.PI / g) + d + c
        },
        easeInBack: function(a, b, c, d, e, f) {
            return void 0 == f && (f = 1.70158),
                d * (b /= e) * b * ((f + 1) * b - f) + c
        },
        easeOutBack: function(a, b, c, d, e, f) {
            return void 0 == f && (f = 1.70158),
                d * ((b = b / e - 1) * b * ((f + 1) * b + f) + 1) + c
        },
        easeInOutBack: function(a, b, c, d, e, f) {
            return void 0 == f && (f = 1.70158),
                1 > (b /= e / 2) ? d / 2 * b * b * (((f *= 1.525) + 1) * b - f) + c: d / 2 * ((b -= 2) * b * (((f *= 1.525) + 1) * b + f) + 2) + c
        },
        easeInBounce: function(a, b, c, d, e) {
            return d - jQuery.easing.easeOutBounce(a, e - b, 0, d, e) + c
        },
        easeOutBounce: function(a, b, c, d, e) {
            return 1 / 2.75 > (b /= e) ? d * 7.5625 * b * b + c: 2 / 2.75 > b ? d * (7.5625 * (b -= 1.5 / 2.75) * b + .75) + c: 2.5 / 2.75 > b ? d * (7.5625 * (b -= 2.25 / 2.75) * b + .9375) + c: d * (7.5625 * (b -= 2.625 / 2.75) * b + .984375) + c
        },
        easeInOutBounce: function(a, b, c, d, e) {
            return e / 2 > b ? .5 * jQuery.easing.easeInBounce(a, 2 * b, 0, d, e) + c: .5 * jQuery.easing.easeOutBounce(a, 2 * b - e, 0, d, e) + .5 * d + c
        }
    });